import { http } from '@/utils/request'

/**
 * OCR识别响应数据
 */
export interface OcrIdCardResponse {
	realName: string // 姓名
	birthday: string // 出生日期（格式: 1992年8月18日）
	cardAddress: string // 地址
	idNumber: string // 身份证号码
	sex: string // 性别（男/女）
	nation: string // 民族（汉）
	cardExpStart: string | null // 有效期开始时间
	cardExpEnd: string | null // 有效期结束时间
	authority: string | null // 发证机关
	status: string | null // 状态
}

/**
 * OCR身份证识别API
 */
export class OcrAPI {
	/**
	 * 身份证OCR识别
	 * @param file 身份证图片文件
	 * @returns 识别结果
	 */
	static async recognizeIdCard(file: File): Promise<ResponseData<OcrIdCardResponse>> {
		const formData = new FormData()
		formData.append('file', file)

		return http.post<OcrIdCardResponse>('/ocr/ocr/idCardInfo', formData, {
			headers: {
				'Content-Type': 'multipart/form-data'
			}
		})
	}
}

/**
 * 身份证OCR识别
 */
export const recognizeIdCardApi = OcrAPI.recognizeIdCard

// 默认导出
export default OcrAPI
